package org.imlinker.login;

import org.imlinker.util.StringUtils;

/**
 * 管理本地帐号。包括利用org.imlinker.setting.SettingFile类从文件中读出信息.
 * 保存到org.imlinker.account.Account类中。同时把一列表的Account类信息保存到指定的本地文件中。
 * 
 * 指定文件是config/accounts.xml
 * 
 * 并对没有设置host,domain,port的帐号填充上默认数据,（现在暂时只有gmail.com等少量的默认数据）。
 */
public class Accounts {

	public static Account fillAccount(final Account account) {
		String user = account.getUser();

		if (StringUtils.isEmpty(account.getDomain())) {
			account.setDomain(getDomainByUser(user));
		}

		if (StringUtils.isEmpty(account.getHost())) {
			account.setHost(getHostByUser(user));
		}

		if (StringUtils.isEmpty(account.getPort())) {
			account.setPort("5222");
		}

		return account;
	}

	private static String getDomainByUser(final String user) {
		return user.substring(user.indexOf("@") + 1);
	}

	private static String getHostByUser(final String user) {
		String host;

		if (user.endsWith("gmail.com")) {
			host = "talk.google.com";
		} else if (user.endsWith("xiaonei.com")) {
			host = "talk.xiaonei.com";
		} else {
			host = "talk.jabber.org";
		}
		return host;
	}

}
